In the prior art, many message delivery systems exist which route messages between endpoints, such as between different applications. The messages may be routed to destination endpoints based on topics or topic to queue mappings. In the case of a system that routes messages based on topics an example of which is described in U.S. Pat. No. 13/357,951, the contents of which are herein incorporated by reference, there are publishing (or producing) clients that generate messages and subscribing (or consuming) clients that receive messages. When a publishing client creates a message it adds to it a topic. Destination endpoints are created by subscribing clients that have associated with them a series of subscriptions (or interests) that are used to attract messages to the subscribing application. Alternately subscriptions may be used to attract messages to a queue endpoint which one or more applications can connect to and receive messages. The topics are typically text strings that often contain sub-fields also known as hierarchical levels but, may also be numbers. Interests or subscriptions are of a similar form to the topics but, may contain regular expressions (also known as wild cards) or if the topics are in the form of numbers, the interests could be in the form of a range of numbers. The interests are gathered by the message delivery system and are used to determine which destination endpoint(s) should receive a copy of a particular message received from a publishing application in a process called matching. In the topic based message delivery system the process of matching involves comparing the topics of messages received from publishing clients to the interests gathered from subscribing clients or queues. A match to an interest is generated when the topic of the incoming messages falls within the regular expression(s) contained in the interest.
In a reliable message delivery system a component may become congested and find it necessary to discard one or more messages due to a lack of resources or because a queue depth exceeded a configured threshold. Prior art message delivery systems that use a brokered topology to set a discard indication flag in the message header to indicate that preceding messages were discarded. However, in this prior art there is only an indication that one or more messages were discarded without providing the topics of the discarded messages. In the case of the brokered topology, prior art systems do not scale to message delivery networks that consist of more than a single message broker (also known as a message delivery router) and do not indicate the exact topic of discarded message(s) if the subscriber interest contains a wildcard or if the subscriber endpoint has associated with it more than a single interest. In other prior art message delivery systems that use a brokerless topology subscribing clients can request a retransmission from source if a lost message is detected. If the source of the message is unable to fulfill the retransmission request, it will broadcast a dataloss advisory message to all clients. The dataloss advisory message used in the prior art brokerless messaging system contains only the identification of the source client and does not contain the topics of the messages that were lost. The dataloss advisory message must be broadcast to all clients of the brokerless message delivery system because the sender is unaware of what clients exist that may be interested in receiving the lost messages.